package leetcode4;

public class Day6 {


    public static void main(String[] args) {
        int[] a = {1, 2, 1};
        //totalFruit(a);
    }


    public int totalFruit(int[] fruits) {
        //如何判断水果的种类和之前的相同或者不同？？可以用map记录，如果=0则不同
        int[] map = new int[fruits.length];
        int ret = 0, kind = 0;
        for (int left = 0, right = 0; right < fruits.length; right++) {
            //1.入窗口并判断水果种类是否增加
            if (map[fruits[right]] == 0) {
                kind++;
            }
            map[fruits[right]]++;
            //2.判断-种类是否超出2种
            while (kind > 2) {
                //3.出窗口
                map[fruits[left++]]--;
                if (map[fruits[left - 1]] == 0) kind--;
            }
            //4.记录结果
            ret = Math.max(ret, right - left + 1);
        }
        return ret;
    }
}